#define rtnl_lock() ((void)0)
#define rtnl_unlock() ((void)0)
-#if 1
+#if 0
#define DPRINTK(_f, _a...) printk(_f , ## _a)
#else
#define DPRINTK(_f, _a...) ((void)0)
if ( (skb = alloc_skb_nodata(GFP_ATOMIC)) == NULL )
{
- add_to_net_schedule_list_tail(vif);
printk("Out of memory in net_tx_action()!\n");
+ tx->status = RING_STATUS_BAD_PAGE;
break;
}
/* Transmit should always work, or the queue would be stopped. */
if ( dev->hard_start_xmit(skb, dev) != 0 )
{
- add_to_net_schedule_list_tail(vif);
printk("Weird failure in hard_start_xmit!\n");
+ kfree_skb(skb);
break;
}
}
for ( i = np->rx_idx; i != np->net_ring->rx_prod; i = RX_RING_INC(i) )
{
skb = np->rx_skb_ring[i];
- dev_kfree_skb(skb);
+ dev_kfree_skb_any(skb);
}
}
{
unsigned int i;
struct net_private *np = (struct net_private *)dev->priv;
-
+
if ( np->tx_full )
{
- printk(KERN_WARNING "%s: full queue wasn't stopped!\n", dev->name);
+ printk(KERN_ALERT "%s: full queue wasn't stopped!\n", dev->name);
netif_stop_queue(dev);
return -ENOBUFS;
}
if ( (((unsigned long)skb->data & ~PAGE_MASK) + skb->len) >= PAGE_SIZE )
{
- struct sk_buff *new_skb = alloc_skb(RX_BUF_SIZE, GFP_KERNEL);
+ struct sk_buff *new_skb = dev_alloc_skb(RX_BUF_SIZE);
+ if ( new_skb == NULL ) return 1;
skb_put(new_skb, skb->len);
memcpy(new_skb->data, skb->data, skb->len);
- kfree_skb(skb);
+ dev_kfree_skb(skb);
skb = new_skb;
}